const ffmpeg = require('fluent-ffmpeg')
 
// 视频文件路径和图片输出路径
const videoPath = './video/demo.mp4'
const outputPath = './media/output'

// 创建ffmpeg实例
const proc = ffmpeg(videoPath)
// 获取视频信息
proc.ffprobe((err, metadata) => {
  if (err) {
    console.error(err)
    return false
  }
  // 打印视频信息
  // console.log('视频信息:', metadata)
  console.log('视频格式:', metadata.format.format_name)
  console.log('视频编码器:', metadata.streams[0].codec_name)
  console.log('视频分辨率:', metadata.streams[0].width, metadata.streams[0].height)
  console.log('持续时间:', metadata.format.duration)

  // 0.1秒取一张图
  let duration = metadata.format.duration, max = Math.ceil(duration / 0.1)
  let list = [], n = 10
  for (let i = 0; i <= max; i++) {
    i = i > duration * 10 ? duration * 10 : i
    if (i % n === 0 || i === 0 || i === duration * 10) {
      list.push(i / 10)
    }
  }

  // 截屏
  proc.screenshots({
    filename: '%ss-%r.png', // 'image.png' 输出图片文件名
    folder: outputPath, // 图片输出文件夹
    // size: '640x480', // 图片尺寸，可以根据需要调整
    timestamps: list // 50%在视频的50%处截图
  })
  .on('error', (err) => {
    console.error('Error: ' + err.message)
  })
  .on('end', () => {
    console.log('Screenshots taken')
  })
})

'ffmpeg -i ' + video_path + ' -f image2  -q:v 2 -vf fps=fps=1/10 ' + save_dir + '/image-%3d.jpg'